package org.lora.webframework.util;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * <p>
 * Title:MathUtil
 * </p>
 * <p>
 * Desription:计算帮助类
 * </p>
 * Create Time:2016年7月6日 上午10:22:06
 * 
 * @author Bladnir@outlook.com
 *         <p>
 *         History:
 *         </p>
 *         2016年7月6日 Bladnir Create</br>
 */
public class MathUtil {

	private static String hundred = "100";

	/**
	 * 构造方法
	 */
	private MathUtil() {
		// do nothing
	}

	/**
	 * 获取百分比
	 * 
	 * @param num
	 * @param total
	 * @param precision
	 * @return
	 * @throws Exception
	 */
	public static BigDecimal getPercent(BigDecimal num, BigDecimal total, int precision) {
		BigDecimal hundred = new BigDecimal(MathUtil.hundred.toCharArray());
		return num.multiply(hundred).divide(total, precision, RoundingMode.DOWN);
	}

	/**
	 * 获取百分比（包含百分号）
	 * 
	 * @param num
	 * @param total
	 * @param precision
	 * @return
	 * @throws Exception
	 */
	public static String getPercent(String num, String total, int precision) {
		return getPercentNumber(num, total, precision) + "%";
	}

	/**
	 * 获得百分比（没有百分号）
	 * 
	 * @param num
	 * @param total
	 * @param precision
	 * @return
	 */
	public static String getPercentNumber(String num, String total, int precision) {
		BigDecimal numb = new BigDecimal(num.toCharArray());
		BigDecimal numt = new BigDecimal(total.toCharArray());

		BigDecimal result = getPercent(numb, numt, precision);

		return result.toString();
	}
}
